Over the past several years, online photo management and sharing have become widely popular services offered by a variety of service providers. Typically, users upload digital images to a website, where they are centrally stored on a server and viewable by guests over the Internet. Typically, the service provider allows the user to group his or her uploaded photos into one or more photo albums. Alternatively, users can associate one or more keywords with an image, thereby creating one or more “tags” for the image. For example, an image of a dog at Yosemite can be associated with the keyword “dog” and the keyword “Yosemite,” thereby creating two tags for the image. The tag can then be used to sort the image into a category, e.g., “dog” and/or “Yosemite,” for viewing or sharing. Because an image can have more than one tag, the image can be in more than one category on the server.
This centralized approach to photo management and sharing, however, presents some disadvantages. In particular, users are required to upload images or other digital content to the website, which can be time consuming. Moreover, the server requires extensive storage capacity to store the images of all the users, which can become expensive.
To address some of these concerns, the assignee of the present invention has developed a distributed web-based peer-to-peer communication environment in which all workstations and computers (peers) in a network store digital content, e.g., images, locally and act as servers to other users on the network. Each peer allows the user of the peer computer to share images stored on the computer with others in the network through a web browser without having to upload the pictures to a web site. A server at a central site provides supporting services to the peers as well as a path through which a visiting computer, i.e., one not belonging to the peer-to-peer network, can access images from the peers via its web browser. The central server also provides additional functionality, such as coordinating the peers, and providing proxy services for the peers, for example.
FIG. 1 is a block diagram illustrating the peer-to-peer (P2P) network system described above. The P2P network 100 includes a central site 40 that includes a peer server 36, and multiple peer computer systems 24a-24c (collectively referred to as peers 24). The peers 24 require the installation of a peer node application 26, which when executed, enables the peer 24 to communicate with other peers 24 and with the peer server 36 over a network, such as the Internet. Access to the central site 40 from devices or clients 32 that are not peers 24 is possible using a standard web browser 30.
The peers 24 may each represent either a website or a computer, and typically store the digital content 20 of a particular user 18. According to the present invention, digital content 20 can refer to digital images, photo albums, video clips, MP3 files, and the like. For the sake of clarity, however, the following description will refer primarily to digital images.
A peer 24 may store the digital content, e.g., images 20, of more than one user. For example, two family members that share a home PC, but manage their images 20 separately, may maintain separate accounts with the network 100 on the shared PC. The digital images 20 are stored as image files that include image data. Each image 20 also has metadata associated with it that describes and categorizes the image. The image's metadata typically includes a tag, which is designated by the user. The tag usually comprises at least one keyword that describes the image 20.
The P2P photosharing network 100 is in contrast to the traditional photosharing model where the user would post digital images by uploading the images from his or her computer to a webserver for storage in a static album. Instead, in the P2P photosharing network 100, the peers 24 maintain storage of the actual image data and only the metadata for each image 20 is uploaded to the central site 40.
In operation, users 18 become members of the P2P photosharing service 100 by downloading and installing the peer node application 26 that communicates with the server 36 and enables the user's computer to become a peer in the P2P network 100. Users 18 of the peers 24 register themselves and their peer systems 24 with the peer server 36 to become members of the service. A user 18 may share images 20 that are local on the user's peer 24 with others by uploading image metadata, including tags, which synchronizes the peer 24 and the peer server 36.
The central site 40 collects image metadata for images 20 on each of the peers 24 and enables users 18 to find images of interest by their tags. Generally, a user 18 can submit a query containing a search criteria. The peer server 36 processes the query, and retrieves and returns a list of images 20 having tags that match the search criteria. A user 18 can then review each image on the list to find images of interest. The images 20 selected from the list by the user 18 are downloaded to the user's peer 24 directly from the peer 24 hosting the images 20.
While tags can provide an effective way of categorizing the images at the central site 40, problems can arise when numerous images have a tag associated with a common keyword, such as “dogs” or “cats.” If the tag is common, the number of images 20 retrieved by the peer server 36 can be very large. The user 18 must view each image 20 in order to find images of interest. This can be a tedious process, particularly if the user 18 is interested in seeing new images in the network 100. In that situation, because the peer server 36 is unable to differentiate between new or old tags, the peer server 36 simply retrieves every image 20 that has a tag that matches the query regardless of the tag's age. Thus, the user 18 must wade through old images 20 in order to find newly uploaded images with newly created tags.
Moreover, if the user 18 submits a query that has a search criteria that is too narrow, or chooses search terms that are synonymous with, but do not match, a particular keyword, the result set returned by the peer server 36 can be under-inclusive, i.e., too small. For example, suppose a first user 18 posts a photo of the New York City skyline (photo 1) and associates the keyword “New York City” with a tag to photo 1. If a second user 18 then submits a query with the keyword “Manhattan,” the peer server 36 will not return photo 1 because its tag does not include the keyword “Manhattan.”
Accordingly, what is needed is a method and system for allowing a user to organize categories of digital content distributed over several peers in a peer-to-peer network such that a user can select particular images from many images that are associated with the same keyword. The present invention addresses such a need.